最近工作上常會需要對一個 array 做批次處理,所以整理一下 PHP 做 array mapping 的方法。
很直覺的,PHP 有個 function 叫 array_map 就是在做這件事,來看看參數要怎麼帶吧!
基本上要準備兩樣東西:被處理的 array 和要對那個 array 做的 function。
<?php
// 假設我們有個 array [1,2,3,4,5],我們想讓裡面每個數變3次方
// 做3次方的 function
function cube_function($n)
{
return ($n * $n * $n);
}
// 要被處理的 array
$array = [1, 2, 3, 4, 5];
//array_map('要執行的function','被處理的array')
$result = array_map('cube_function', $array);
print_r($result); // [1,4,9,16,25]
?>
如果用Laravel,也可以用 collection 裡面 map 的方法。
<?php
$result = collect($array)->map(function($each_num){
return pow($each_num, 3); // pow(x,y)會回傳 x 的 y 次方
});
?>